Итак, мы сделали довольно много работы для того, чтобы жизнь стала легче. Давайте посмотрим, как можно применить наши классы в проекте. Мы сделаем проект с такой структурой.

По нажатию на кнопки должен появляться соответствующий диалог. Наша задача посмотреть как приято наследовать что то, а точнее наш класс CDaoDialog. Создаем проект на основе диалогового окна с именем TestDialog. Добавляем в наш проект два диалога из шаблона IDD_DIALOG_DAO и на основе этих шаблонов делаем два класса. Имена на схеме. Добавляем из компонентов CDaoDialog и CDaoNavigator. CDaoDialog наследуется от CDialog, а мы поменяет на CDaoDialog.
////////////////////////
// CDialogCar dialog
#include "DaoDialog.h"
class CDialogCar : public CDaoDialog
{
// Construction
public:
......
};
......
CDialogCar::CDialogCar(CWnd* pParent /*=NULL*/)
: CDaoDialog(CDialogCar::IDD, pParent)
{
//{{AFX_DATA_INIT(CDialogCar)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
......
То же самое надо сделать для класса CDialogDriver. То же самое надо сделать для класса CDialogDriver. Теперь надо создать два класса Set. Используя ClassWizard. Имена в таблице выше. Добавляем их к классу диалога как Foreign class именем m_pSet. Давайте инициализируем набор записей для CDialogCar.
CDialogCar::CDialogCar(CWnd* pParent /*=NULL*/)
: CDaoDialog(CDialogCar::IDD, pParent)
{
//{{AFX_DATA_INIT(CDialogCar)
m_pSet = NULL;
//}}AFX_DATA_INIT
m_pSet=new CCarSet();
m_pSet->Open();
SetRecorset(m_pSet);
}
......
void CDialogCar::OnDestroy()
{
CDialog::OnDestroy();
delete m_pSet;
}
Реакция на нажатие кнопок на диалоге.
void CDialogCar::OnButtonFirst()
{
First();
}
void CDialogCar::OnButtonPrev()
{
Prev();
}
void CDialogCar::OnButtonNext()
{
Next();
}
void CDialogCar::OnButtonLast()
{
Last();
}
Все один к одному для CDialogDriver. Код нажатия на кнопки.
#include "DialogCar.h"
#include "DialogDriver.h"
......
void CTestDialogDlg::OnButtonDriver()
{
CDialogDriver cd;
cd.DoModal();
}
void CTestDialogDlg::OnButtonCar()
{
CDialogCar cd;
cd.DoModal();
}
Осталось только расставить и связать элементы управления на диалоговых окнах. Можно было еще сократить код договорившись, что набор записей всегда будет m_pSet. Пробуйте. В проекте готовое приложение. Самое главное в этом шаге посмотреть, что VC++ не так плох для баз данных. Что буквально несколько дополнительных классов и скорость разработки приложения будет не меньше чем на VB или Delphi. В следующих шагах мы сделаем еще несколько классов, и все станет еще приятнее. Но зато то чувство контроля и полной свободы не подарит Вам не один язык программирования кроме С++.